/******************************************************************************/
/*  mbfunc.h                                                                  */
/*                                                                            */
/*  FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU. */
/*  Copyright (c) 2006 Christian Walter <wolti@sil.at>                        */
/*  All rights reserved.                                                      */
/******************************************************************************/

#ifndef __MB_FUNC_H
#define __MB_FUNC_H


#ifdef __cplusplus
  PR_BEGIN_EXTERN_C
#endif


#if MB_FUNC_OTHER_REP_SLAVEID_ENABLED > 0
  eMB_EXCEPTION MbFuncReportSlaveID(uint8_t * _pFrame, uint16_t * _pLen);
#endif

#if MB_FUNC_READ_INPUT_ENABLED > 0
  eMB_EXCEPTION MbFuncReadInputRegister(uint8_t * _pFrame, uint16_t * _pLen);
#endif

#if MB_FUNC_READ_HOLDING_ENABLED > 0
  eMB_EXCEPTION MbFuncReadHoldingRegister(uint8_t * _pFrame, uint16_t * _pLen);
#endif

#if MB_FUNC_WRITE_HOLDING_ENABLED > 0
  eMB_EXCEPTION MbFuncWriteHoldingRegister(uint8_t * _pFrame, uint16_t * _pLen);
#endif

#if MB_FUNC_WRITE_MULTIPLE_HOLDING_ENABLED > 0
  eMB_EXCEPTION MbFuncWriteMultipleHoldingRegister(uint8_t * _pFrame, uint16_t * _pLen);
#endif

#if MB_FUNC_READ_COILS_ENABLED > 0
  eMB_EXCEPTION MbFuncReadCoils(uint8_t * _pFrame, uint16_t * _pLen);
#endif

#if MB_FUNC_WRITE_COIL_ENABLED > 0
  eMB_EXCEPTION MbFuncWriteCoil(uint8_t * _pFrame, uint16_t * _pLen);
#endif

#if MB_FUNC_WRITE_MULTIPLE_COILS_ENABLED > 0
  eMB_EXCEPTION MbFuncWriteMultipleCoils(uint8_t * _pFrame, uint16_t * _pLen);
#endif

#if MB_FUNC_READ_DISCRETE_INPUTS_ENABLED > 0
  eMB_EXCEPTION MbFuncReadDiscreteInputs(uint8_t * _pFrame, uint16_t * _pLen);
#endif

#if MB_FUNC_READWRITE_HOLDING_ENABLED > 0
  eMB_EXCEPTION MbFuncReadWriteMultipleHoldingRegister(uint8_t * _pFrame, uint16_t * _pLen);
#endif

#if MB_FUNC_SMARTBUG_CMD_ENABLED > 0
  eMB_EXCEPTION MbFuncSmartbugCmd(uint8_t * _pFrame, uint16_t * _pLen);
#endif


#ifdef __cplusplus
  PR_END_EXTERN_C
#endif


#endif